package com.powerbank.common.dto;

import lombok.Data;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 交易请求DTO
 */
@Data
public class TransactionRequest {

    /**
     * 用户ID
     */
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    /**
     * 账户类型
     */
    @NotBlank(message = "账户类型不能为空")
    private String accountType;

    /**
     * 交易金额
     */
    @NotNull(message = "交易金额不能为空")
    @DecimalMin(value = "0.01", message = "交易金额必须大于0")
    private BigDecimal amount;

    /**
     * 关联订单号
     */
    private String orderNo;

    /**
     * 关联支付号
     */
    private String paymentNo;

    /**
     * 支付方式：ALIPAY-支付宝，WECHAT-微信，BANK-银行卡，WALLET-钱包
     */
    private String paymentMethod;

    /**
     * 交易描述
     */
    private String description;
}